<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<script>
description("This tests the length property of functions.");

shouldBe('window.confirm.length', '0');
shouldBe('window.open.length', '0');
shouldBe('window.setTimeout.length', '1');
shouldBe('window.clearTimeout.length', '0');
shouldBe('window.addEventListener.length', '2');
shouldBe('window.removeEventListener.length', '2');
shouldBe('window.postMessage.length', '1');
shouldBe('window.dispatchEvent.length', '1');
shouldBe('window.openDatabase.length', '4');
shouldBe('window.history.pushState.length', '2');
shouldBe('window.history.length', '1');
shouldBe('window.URL.createObjectURL.length', '1');
shouldBe('window.Storage.prototype.key.length', '1');

// One required and one optional argument
shouldBe('document.importNode.length', '1');
// One variadic argument
shouldBe('document.write.length', '0');
// Overloaded method with varying number of arguments
shouldBe('CanvasRenderingContext2D.prototype.drawImage.length', '3');

shouldBe('Array.prototype.concat.length', '1');
shouldBe('Array.prototype.join.length', '1');
shouldBe('Array.prototype.push.length', '1');
shouldBe('Array.prototype.slice.length', '2');
shouldBe('Date.UTC.length', '7');
shouldBe('Date.prototype.setSeconds.length', '2');
shouldBe('Date.prototype.setMinutes.length', '3');
shouldBe('Date.prototype.setHours.length', '4');
shouldBe('Date.prototype.setMonth.length', '2');
shouldBe('Date.prototype.setFullYear.length', '3');
shouldBe('Number.prototype.toExponential.length', '1');
shouldBe('Number.prototype.toFixed.length', '1');
shouldBe('Number.prototype.toPrecision.length', '1');
shouldBe('Math.max.length', '2');
shouldBe('Math.min.length', '2');
shouldBe('Function.prototype.apply.length', '2');
shouldBe('Function.prototype.call.length', '1');
shouldBe('String.prototype.split.length', '2');
shouldBe('String.prototype.substring.length', '2');


</script>
</body>
</html>
